home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Patches 1995 December
/
SGI IRIX Patches 1995 Dec.iso
/
relnotes
/
patchSG0000556
/
ch3.z
/
ch3
Wrap
Text File
|
1995-11-17
|
4KB
|
133 lines
- 1 -
1. _B_u_g_s__F_i_x_e_d__i_n__P_a_t_c_h__S_G_0_0_0_0_5_5_6
Patch 556 fixes the following bugs on top of those
previously fixed in patches SG0000364 (see Chapter 4) and
SG0000170 (see Chapter 5):
_S_y_n_t_a_x _A_n_a_l_y_s_i_s
+o Fixed a problem with premature or unnecessary
instantiation of member functions of template classes,
which would cause spurious syntax errors about
incomplete classes or invalid operators for template
parameters. (281526, 275650)
+o We now allow explicit destructor calls on template type
parameters using the ~~~~TTTT(((()))) syntax (for a "template
<class T> class Foo {...}"). (233851)
+o Fixed a problem matching template types in the presence
of typedefs and const-qualified types. (279898)
+o The compiler now passes on friendship to classes nested
within the friend class. (278785)
+o CC now correctly performs type-checking of the two
dependent expressions when the type of one of them is a
const-qualified version of the other. (278769)
+o CC will now call an operator T& for a template<class T>
class if an instance of that class is cast to a T&
(284867).
+o CC used to crash when it encountered an array of
classes whose constructor takes a class type as an
argument with a default value. This is now fixed.
(279896, 281237)
+o CC no longer gives a spurious error when it encounters
a #pragma instantiate during "CC -M". (271665)
+o DCC no longer crashes if it encounters a struct with a
nested typedef that points back to the struct. (280910)
_C_o_d_e _G_e_n_e_r_a_t_i_o_n
+o Casts between pointer-to-member-function types caused
bad code to be generated, causing the compiler backend
(ugen or uopt) to crash. (281857).
+o Expressions of the form "long *= long long" were being
incorrectly computed. We now generate correct code for
- 2 -
them. (276616)
+o We now correctly generate tttthhhhiiiissss pointers when calling an
inherited ooooppppeeeerrrraaaattttoooorrrr(((()))) from a non-leftmost base class.
(280806, 252593).
+o Volatile arrays (declared arrays of volatile types) are
now handled correctly (i.e. we do not optimize accesses
to them). (278794)
_O_t_h_e_r
+o The prelinker can now look for available template
instantiations in libraries specified using the "-l"
flag on the link (or edg_prelink) line. (274682)
+o We now correctly handle CC's ----oooobbbbjjjjeeeeccccttttlllliiiisssstttt option in the
template prelinker (i.e. objects in the -objectlist
file that need to have templates instantiated are
handled correctly). (253983)
+o The template instantiation mechanism now correctly
handles the case where template instantiations in DSOs
may have the HIDDEN attribute (and thus shouldn't be
counted as available instantiations). (271006)